// 引入axios以及element ui中的loading和message组件
import axios from 'axios'
import {
	Loading,
	Message
} from 'element-ui'
// 超时时间
axios.defaults.timeout = 5000
// http请求拦截器
var loadinginstace
axios.interceptors.request.use(config => {
	// element ui Loading方法
	loadinginstace = Loading.service({
		fullscreen: true
	})
	return config
}, error => {
	setTimeout(function() {
		loadinginstace.close()
		Message.error({
			message: '加载超时'
		})
	}, 5000)

	return Promise.reject(error)
})
// http响应拦截器
axios.interceptors.response.use(data => { // 响应成功关闭loading
	loadinginstace.close()
	return data
}, error => {
	// 	setTimeout(function() {
	// 		
	// 	}, 3000)

	loadinginstace.close()
	Message.error({
		message: '数据错误',
		duration: 5000
	})
	return Promise.reject(error)
})

export default axios


// -------------------------------------------------------------------------

// 引入axios以及element ui中的loading和message组件
// import axios from 'axios'
import {
	Loading,
	Message
} from 'element-ui'
// 超时时间
axios.defaults.timeout = 5000
// http请求拦截器
let loading
axios.interceptors.request.use(config => {
	let showLoading = true
	if(config.loading === false){
		showLoading = false
	}
	if(showLoading){
		// element ui Loading方法
		loading = Loading.service({
			// fullscreen: true
			text: 'Loading...',
			spinner: 'el-icon-loading',
			background: 'rgba(0, 0, 0, 0.7)'
		})
	}
	// 请求头带上token
	config.headers['token'] = Vue.cookie.get('token')
	// 请求地址处理
	config.url = BASE_URL + config.url
	let type = config.method
	let defaults = {}
	if(type === 'post'){

	}else if(type === 'get'){

	}
	return config
}, error => {
	// setTimeout(function () {
	// 	loading.close()
	// 	Message.error({
	// 		message: '加载超时'
	// 	})
	// }, 5000)

	return Promise.reject(error)
})
// http响应拦截器
axios.interceptors.response.use(response => { // 响应成功关闭loading
	loading.close();
	if(response.data && response.data.code === 401){	// 401,token失效

	}
	// 请求返回成功
	// 有一种情况，导出文件时，返回的是文件流
	const headers = response.headers;
	if(headers['content-type'] && headers['content-type'] === 'application/vnd.openxmlformats=officedocument'){
		
	}
	return data
}, error => {
	// 	setTimeout(function() {
	// 		
	// 	}, 3000)

	loading.close()
	Message.error({
		message: '数据错误',
		duration: 5000
	})
	return Promise.reject(error)
})

export default axios